

const http = require('http');
const url = require('url');
const qs = require('querystring');

const path = require('path');
const fs = require('fs');
const fsp = fs.promises;

const { render } = require("./tool/renderSite.js");
const Router = require('./tool/router.js');



const { createServer } = http;

var server = createServer();


server.on("request", function (req, res) {
    if (req.url != "/favicon.ico") {
        console.log("接收前端发送的请求");
        console.log(req.method, req.url);

        var urlInfo = url.parse(req.url, true);
        // console.log(urlInfo);

        var { pathname, query } = urlInfo;
        console.log(query);

        req.query = query;  //给req新增属性 query =>query



        // 路由: (根据对应路由地址渲染不同的内容   -> 路由地址(自己定 /aaa) 响应数据(这是a))
        // 可以通过指定url 快捷访问站点下的某个或某些文件  => 返回响应数据 (根据路径=>快捷访问页面/数据接口)
        // /          根路由  => 渲染主页面
        // /xxx       一级路由 =>  对应路由渲染不同的文件/数据
        // /xxx/xxx   二级路由 => 一级路由的子路由  


        // 一. 站点展示 (前端)
        // 读取url中的路径部分 -> 如果在站点中存在 -> 读取该文件返回给前端(站点搭建)

        // 注意:除了站点中的必须路径之外  -> 空余路径  -> 自定义空余理解的用途 (路由 -> 路径字头)

        // 二. 接口(后端) -> 响应数据 
        // 读取url中的路径部分 -> 自定义路径

        // 三. 页面路由  => 自定义路由 =>  渲染页面 (给页面起了一个小名)

        // 注意: 页面路由和站点的html文件不能混用跳转      => 要用页面路由 就都用页面路由
        // 1. a标签的跳转相对于 url地址栏  
        // 2. 引入资源(link script  import)相对于当前文件

        // url: http://localhost:3000/html/register.html       跳转 ./login.html => 可以
        // url: http://localhost:3000/reg                      跳转 ./login.html => http://localhost:3000/login.html

        // 1. 禁止显示.html
        // 2. 将.html文件改为 .ejs
        // 3. 自定义路由 显示对应的.ejs文件


        if (render(pathname, res)) {  // true false  => 路径在站点中存在  => 直接渲染

        } else if (Router(pathname, req, res)) {  // 如果在路由中存在  =>  执行路由下的内容

        } else if (pathname == "/reg") {  // 自定义路由 /reg => 快捷渲染 /html/register.html
            render("/html/register.ejs", res)
        } else if (pathname == "/login") {  // 自定义路由 /reg => 快捷渲染 /html/register.html
            render("/html/login.ejs", res)
        } else if (pathname == "/search") {  // 自定义路由 /reg => 快捷渲染 /html/register.html
            render("/html/search.ejs", res)
        }







    } else {
        res.end();
    }
})


server.listen(3000, function () {
    console.log("服务器启动成功localhost:3000");
})

